package com.ssy.lingxi.after.sale.model.vo.request;

import com.ssy.lingxi.after.sale.model.bo.ProofFileBO;

import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Positive;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.util.List;

/**
 * 保存维修VO
 * @author 伍将
 * @date 2020/9/1
 * @version 2.0.0
 */
public class RepairGoodsSaveVO implements Serializable {
    private static final long serialVersionUID = -837472657277199106L;

    /**
     * 维修id（新增时为0，修改时为原标识id）
     */
    @NotNull(message = "维修id不能为空")
    private Long repairId;

    /**
     * 供应商会员id
     */
    @NotNull(message = "供应商会员id要大于0")
    @Positive(message = "供应商会员id要大于0")
    private Long supplierMemberId;

    /**
     * 供应商角色id
     */
    @NotNull(message = "供应商角色Id要大于0")
    @Positive(message = "供应商角色Id要大于0")
    private Long supplierRoleId;

    /**
     * 供应商名称
     */
    @NotBlank(message = "供应商名称不能为空")
    private String supplierName;

    /**
     * 申请单摘要
     */
    @NotBlank(message = "申请单摘要不能为空")
    @Size(max = 60, message = "申请单摘要最长60个字符")
    private String applyAbstract;

    /**
     * 维修地址
     */
    @NotBlank(message = "维修地址不能为空")
    private String repairAddress;

    /**
     * 相关故障原因附件
     */
    @Valid
    private List<ProofFileBO> faultFileList;

    /**
     * 维修货物列表
     */
    @Valid
    @NotNull(message = "维修货物不能为空")
    @Size(min = 1, message = "至少有一个维修货物")
    private List<RepairGoodsDetailSaveVO> repairGoodsList;

    /**
     * 订单类型
     */
    @NotNull(message = "订单类型不能为空")
    @Positive(message = "订单类型不能为空")
    private Integer orderType;
    /**
     * 维修原因
     */
    @Size(max = 60, message = "维修原因不能超过60个字符")
    private String repaireReason;

    /**
     * 店铺id
     */
    private Long shopId;
    /**
     * 店铺logo
     */
    private String shopLogo;
    /**
     * 店铺名称
     */
    private String shopName;

    /**
     * AgentFlagEnum
     * 代客标识: 0 - 非代客； 1 - 代客
     */
    private Integer agentFlag;

    public Integer getOrderType() {
        return orderType;
    }

    public void setOrderType(Integer orderType) {
        this.orderType = orderType;
    }

    public Long getSupplierMemberId() {
        return supplierMemberId;
    }

    public void setSupplierMemberId(Long supplierMemberId) {
        this.supplierMemberId = supplierMemberId;
    }

    public Long getSupplierRoleId() {
        return supplierRoleId;
    }

    public void setSupplierRoleId(Long supplierRoleId) {
        this.supplierRoleId = supplierRoleId;
    }

    public String getSupplierName() {
        return supplierName;
    }

    public void setSupplierName(String supplierName) {
        this.supplierName = supplierName;
    }

    public Long getRepairId() {
        return repairId;
    }

    public void setRepairId(Long repairId) {
        this.repairId = repairId;
    }

    public String getApplyAbstract() {
        return applyAbstract;
    }

    public void setApplyAbstract(String applyAbstract) {
        this.applyAbstract = applyAbstract;
    }

    public String getRepairAddress() {
        return repairAddress;
    }

    public void setRepairAddress(String repairAddress) {
        this.repairAddress = repairAddress;
    }

    public List<ProofFileBO> getFaultFileList() {
        return faultFileList;
    }

    public void setFaultFileList(List<ProofFileBO> faultFileList) {
        this.faultFileList = faultFileList;
    }

    public List<RepairGoodsDetailSaveVO> getRepairGoodsList() {
        return repairGoodsList;
    }

    public void setRepairGoodsList(List<RepairGoodsDetailSaveVO> repairGoodsList) {
        this.repairGoodsList = repairGoodsList;
    }

    public String getRepaireReason() {
        return repaireReason;
    }

    public void setRepaireReason(String repaireReason) {
        this.repaireReason = repaireReason;
    }

    public Long getShopId() {
        return shopId;
    }

    public void setShopId(Long shopId) {
        this.shopId = shopId;
    }

    public String getShopLogo() {
        return shopLogo;
    }

    public void setShopLogo(String shopLogo) {
        this.shopLogo = shopLogo;
    }

    public String getShopName() {
        return shopName;
    }

    public void setShopName(String shopName) {
        this.shopName = shopName;
    }

    public Integer getAgentFlag() {
        return agentFlag;
    }

    public void setAgentFlag(Integer agentFlag) {
        this.agentFlag = agentFlag;
    }
}

